# _*_ coding: utf-8 _*_
# @创建时间：2024/4/2 09:32
# @作者：dengqihua
# @名称 : common_script.py
# @描述 : 通用脚本集合

import os
import sys

sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
import asyncio
from datetime import datetime
from app import app
from app.ctx.app_ctx import app_context

from app.libs.decorators import redis_lock
from app.managers.user_manager import UserManager


class CommonScript:
    """通用脚本"""

    @classmethod
    @redis_lock(prefix='CommonScript')
    async def test(cls):
        """执行"""
        now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print(await UserManager.filter_first({'id':1}))
        print(f'{now} 执行成功')


async def work(func_name, *args):
    async with app_context(app):
        method = getattr(CommonScript, func_name, None)
        if method:
            await method(*args)
        else:
            print(f'方法{func_name}不存在于 CommonScript类中')


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print('请提供要执行的方法名称！！！')
        sys.exit(1)

    func_name = sys.argv[1]
    args = sys.argv[2:]
    print(f'执行{func_name}方法：')
    asyncio.run(work(func_name, *args))
